import { axios } from "@/utils/http";

/**
 * 传入一个图书列表，列表中包含isbn，返回一个isbns字符串
 * @param {Array} array 图书列表
 * @param {Number} length 显示多少个
 * @returns {String}
 */
export function isbnList(array, length) {
  let isbn = "";
  if (array.length > length) {
    array = array.slice(0, length);
  }
  let num = 0;
  array.forEach((item, index) => {
    if (item["isbn"] && num < length && item["isbn"].indexOf("(") == -1) {
      isbn += item["isbn"].replace(/-/g, "") + ",";
      num += 1;
    }
  });
  return isbn;
}

/**
 * 处理获取的图书封面，返回以isbn为key的Map
 * @param {Array} e 数组
 * @returns {Object}
 */
export function isbnBookObj(e) {
  const obj = {};
  const data = JSON.parse(e.substring(11, e.length - 1));
  data.result.forEach(c => {
    obj[c.isbn] = c;
  });
  return obj;
}

/**
 * 将图书列表插入图书封面字段
 * @param {Array} list 图书列表
 * @returns {Array}
 */
export async function getBookCover(list) {
  const isbn = isbnList(list, list.length);
  const res = await axios.get(
    process.env.VUE_APP_BOOK_COVER + isbn + process.env.VUE_APP_BOOK_COVER_AFTER
  );
  if (res) {
    const coverObj = isbnBookObj(res);
    if (JSON.stringify(coverObj) !== "{}") {
      const arr = [];
      list.map(c => {
        const item = { ...c };
        item.imgUrl = coverObj[c.isbn.replace(/-/g, "")]
          ? coverObj[c.isbn.replace(/-/g, "")].coverlink
          : null;
        arr.push(item);
      });
      return arr;
    } else {
      return list;
    }
  } else {
    return list;
  }
}
